std::forward_list::merge

From Cppreference

Jump to: navigation, search
void merge( forward_list& other );
(1) (C++0x feature)
void merge( forward_list&& other );
(1) (C++0x feature)
template <class Compare>
void merge( forward_list& other, Compare comp );
(2) (C++0x feature)
template <class Compare>
void merge( forward_list&& other, Compare comp );
(2) (C++0x feature)

Merges two sorted lists into one. The lists should be sorted into ascending order.

No elements are copied. The container other becomes empty after the operation. The function does nothing if ​this == &other​. If ​get_allocator() != other.get_allocator(), the behavior is undefined. No iterators or references become invalidated, except that the iterators of moved elements now refer into *this​, not into other. The first version uses ​operator< to compare the elements, the second version uses the given comparison function comp.

Contents

Parameters

other - another container to merge
comp - comparison function which returns ​true if the first argument is less than the second.

The signature of the comparison function should be equivalent to the following:

bool cmp(const Type1 &a, const Type2 &b);

The signature does not need to have const &, but the function must not modify the objects passed to it.
The types ​Type1​ and ​Type2​ must be such that an object of type ​forward_list<T,Allocator>::const_iterator can be dereferenced and then implicitly converted to both of them.

Return value

(none)

Example

Complexity

at most ​size() + other.size() - 1 comparisons.

See also

splice
moves elements between containers
(public member function)
Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox
In other languages